package com.chen.tliaswebtest.exception;

import com.chen.tliaswebtest.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author chen
 * @version 1.0
 * @create_date 2025/7/25
 * 全局异常处理类，捕获所有异常
 * 这个注解@RestControllerAdvice = @ControllerAdvice + @ResponseBody
 */
@Slf4j
@RestControllerAdvice
public class TliasExceptionHandler {

    // 统一处理所有异常
    //  注解中指定要处理的异常
    @ExceptionHandler(Exception.class)
    public Result handleException(Exception e) { // 获取异常信息
        log.warn(e.getMessage());
        // 判断异常类型，获取指定的错误信息
        if (e instanceof TliasException) {
            return Result.error(e.getMessage());
        }
        // 如果不是指定的异常，则返回通用错误信息
        return Result.error("操作失败，请联系管理员！");
    }
}
